<?php
declare (strict_types=1);

namespace app\api\controller;

use app\model\CommentModel;
use think\facade\Request;
use think\facade\Validate;
use think\facade\View;


class Comment
{
    public function index(){
        $commentList = CommentModel::select();
        $data = [
            'status' => 0,
            'message' => '',
            'data' => [
                'commentList' => $commentList,
            ],
        ];
        return json($data);
    }

    /**
     * 增加评论
     */
    public function add()
    {
        //请求参数
        $params = Request::param();
        //验证
        $validate = Validate::rule([
            // 缺少文章id
            'ware_id|商品id' => 'require|min:1|max:10',
            'user_id|用户id' => 'require|min:1|max:10',
            'comment_content|评论内容'=>'require|min:1|max:500',
            'avatar|头像'=>'require',
            // 'email|邮箱'=>'require|min:3|max:100',
            'user_name|昵称'=>'require|min:1|max:20'
        ]);
        if (!$validate->check($params)){
            $data = [
                'status'=>'1',
                'message'=>$validate->getError(),
                'data'=>[]
            ];
            return json($data);
        }

        /***
         * 评论敏感词过滤功能
         */
//        echo getcwd();    D:\nginx-1.18.0\html\blog\public
//        exit();
        //验证评论内容是否合规
//         require_once '../extend/baiduai/AipContentCensor.php';

//         $client = new \AipContentCensor(24241628,"XFRcuiVvurDq66FTCIj54QUh", "9YrqB1wzTPMrKtCzxYej1z7UMacK6cvp");
// //        echo microtime(true);echo "<br />"; //查看一共用了多少时间1621927321.5153
//         $result = $client->textCensorUserDefined($params['comment_content'].''.$params['nickName']);
// //        echo microtime(true);echo "<br />"; //1621927323.4595

//         if ($result['conclusionType'] == 2){   // 审核结果类型，可取值1.合规，2.不合规，3.疑似，4.审核失败
//             $data = [
//                 'status'=>10003,
//                 'message'=>'评论内容包含敏感词',
//                 'data'=>[]
//             ];
//             return json($data);
//         }
//         if ($result['conclusionType'] == 3){    //疑似敏感词，放入回收站，将状态更改为2
//             //写入数据库
//             $params['update_time']=$params['add_time']=time();
//             $params['status'] = 2;
//             CommentModel::create($params);
//             $data = [
//                 'status'=>10003,
//                 'message'=>'评论内容包含敏感词',
//                 'data'=>[]
//             ];
//             return json($data);
//         }

        //写入数据库
        $params['update_time']=$params['add_time']=time();
        $result = CommentModel::create($params);
        //返回json的数据格式
        $data = [
            'status'=>'0',
            'message'=>'success',
            'data'=>[
                'commentList'=>$result->toArray()
            ]
        ];
        return json($data);
//        return View::fetch('public/tips',['result'=>$result]);
        //如何调试这个接口  show doc 的 run api 工具
    }

    /**
     * 评论列表
     */
    public function list()
    {
        //接收article_id的参数
        //根据article_id获取到评论列表
        $wareId = Request::param('ware_id');
        $validate = Validate::rule([
            'ware_id|商品id'=>'require|between:1,'. PHP_INT_MAX,
        ]);
        if(!$validate->check(['ware_id'=>$wareId])){
            $data = [
                'status'=>'1',
                'message'=>$validate->getError(),
                'data'=>[]
            ];
            return json($data);
        }

        //从数据库读取出来
        $result = CommentModel::where("ware_id","=",$wareId)
            ->order("add_time","desc")
            ->select();
        $commentList=[];
        foreach ($result as $item){
            $temp = $item->toArray();
            $commentList[]=[        //$commentList[]数组内，重点！！！
                'comment_id'=>$temp['comment_id'],
                'comment_content'=>$temp['comment_content'],
                'user_name'=>$temp['user_name'],
                'add_time'=>$temp['add_time'],
                'avatar'=>$temp['avatar'],
                'ware_id'=>$wareId
            ];
        }
        $data = [
            'status'=>'0',
            'message'=>'',
            'data'=>[
                'commentList'=>$commentList
            ]
        ];
        return json($data);
    }

}
